package com.siyougame.business.controller.admin.user.vo;

import lombok.*;
import java.util.*;
import io.swagger.annotations.*;
import javax.validation.constraints.*;
import org.springframework.format.annotation.DateTimeFormat;

import static com.siyougame.common.utils.DateUtils1.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

/**
* 微信用户 Base VO，提供给添加、修改、详细的子 VO 使用
* 如果子 VO 存在差异的字段，请不要添加到这里，影响 Swagger 文档生成
*/
@Data
public class WxUserBaseVO {

    @ApiModelProperty(value = "ID", required = true)
    private Long id;

    @ApiModelProperty(value = "姓名", required = true)
    private String name;

    @ApiModelProperty(value = "登陆后的token", required = true)
    private String token;

    @ApiModelProperty(value = "token过期时间", required = true)
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private Date expiresTime;

    @ApiModelProperty(value = "公众号openid")
    @NotNull(message = "公众号openid不能为空")
    private String gzhOpenid;

    @ApiModelProperty(value = "unionid", required = true)
    private String unionid;

    @ApiModelProperty(value = "小程序openid", required = true)
    private String xcxOpenId;

    @ApiModelProperty(value = "微信昵称", required = true)
    private String nickname;

    @ApiModelProperty(value = "微信性别", required = true)
    private Long sex;

    @ApiModelProperty(value = "微信国家", required = true)
    private String country;

    @ApiModelProperty(value = "微信省份", required = true)
    private String province;

    @ApiModelProperty(value = "微信城市", required = true)
    private String city;

    @ApiModelProperty(value = "微信头像", required = true)
    private String headimgurl;

    @ApiModelProperty(value = "微信电话", required = true)
    private String mobile;

    @ApiModelProperty(value = "0关闭1开启", required = true)
    private Long status;

    @ApiModelProperty(value = "备注", required = true)
    private String remark;

    @ApiModelProperty(value = "${column.columnComment}", required = true)
    private String description;

    @ApiModelProperty(value = "${column.columnComment}", required = true)
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private Date createTime;

    @ApiModelProperty(value = "${column.columnComment}", required = true)
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private Date updateTime;

    @ApiModelProperty(value = "创建人", required = true)
    private String creator;

    @ApiModelProperty(value = "修改人", required = true)
    private String updater;

}
